package com.zhongkai.service.book;

import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.zhongkai.dao.book.MoveinDAO;
import com.zhongkai.service.BaseService;

import com.zhongkai.model.book.TCsCclxdz;
import com.zhongkai.model.book.TDjCcdjxx;
import com.zhongkai.model.book.TDjCcywcl;
import com.zhongkai.model.book.TDmCcsQryj;
import com.zhongkai.model.config.User;

/*****
 * 车船迁入的服务类
 * 用于保存车船迁入等信息
 * @author 胡宇峰
 * DateCau() 检测迁入时间以及迁入证明，并计算出申报时间
 * save() 用于保存车船迁入信息，增加操作人，修改人以及操作修改时间
 */
@Service
@Transactional
public class MoveinService extends BaseService {

	/**
	 * 计算出申报起始时间
	 * @param qrrq 迁入时间
	 * @param qryjdm 迁入证明代码
	 * @return
	 */
	private String DateCau(Date qrrq,String qryjdm)
	{
		String sbqsny;
		String sqrrq;
		Integer tmp;
		java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy");
		sqrrq=df.format(qrrq);
		//sqrrq=sqrrq.split("-")[0];
		tmp=Integer.parseInt(sqrrq);
		if (qryjdm.compareTo("00")==0)
		{			
			sbqsny=tmp.toString()+"01";
		}
		else
			sbqsny=(++tmp).toString()+"01";

		return sbqsny;
	}
	/**
	 * 保存车船登记信息以及车船业务处理数据。
	 */
	public boolean save(TDjCcdjxx ccdjxx,TDjCcywcl ccywcl,HttpServletRequest request) throws Exception{
			//System.out.println(ccdjxx.getCcdjh());
			
			User user =(User)request.getSession().getAttribute("user");
			Date currentdate=new Date();
			/*
			 * 加入操作员，操作时间，修改员，修改时间
			 */
			ccdjxx.setCzrDm(user.getUserIdentifier());
			ccdjxx.setXgrDm(user.getUserIdentifier());
			ccywcl.setCzrDm(user.getUserIdentifier());
			ccywcl.setXgrDm(user.getUserIdentifier());
			ccdjxx.setCzRq(currentdate);
			ccdjxx.setXgRq(currentdate);
			ccywcl.setCzRq(currentdate);
			ccywcl.setXgRq(currentdate);
			
			//迁入时间应为当天
			ccdjxx.setDjRq(currentdate);
			ccywcl.setDjRq(currentdate);
			
			//车牌号加上前缀以及把小写变成大写
			ccdjxx.setCcpzh("粤T."+ccdjxx.getCcpzh().toUpperCase());
			
			//交警车船代码转税务车船代码
			TCsCclxdz sw=(TCsCclxdz) JjcclxDM2SwcclxDm(ccdjxx.getJjcclxDm());
			ccdjxx.setSwcclxDm((String)sw.getSwcclxDm());
			
			//迁入代码，如果为其他，就不用改。
			if (ccywcl.getQrYjMc()=="" || ccywcl.getQrYjMc()==null)
			{
				TDmCcsQryj qrlist=(TDmCcsQryj)selectById(TDmCcsQryj.class, ccywcl.getQrYjDm());
				ccywcl.setQrYjMc((String)qrlist.getQryjMc());
			}
			
			/*
			 * 后台验证申报时间。
			 */
			ccdjxx.setSbqsny(DateCau(ccywcl.getQrRq(),ccywcl.getQrYjDm()));
			//保存数据
			insert(ccdjxx);
			insert(ccywcl);
			return true;
	}
	
}
